<?php
use think\Db;

/**
 * 记录日志方法
 * @author  黄明杰 vx:HMJ125855
 * @version 20190101
 * @param  	Int 		$UID    	唯一标识
 * @param  	Int 		$Type   	操作类型
 * @param  	String 		$Message	日志内容
 * @param  	Int 		$State  	日志状态
 * @return 	Nothing
 */
function addMemberLog($UID, $Type, $Message, $State, $Tips = ''){
    $Param = [];
    $Param['log_member'] = $UID;
    $Param['log_type'] = $Type;
    $Param['log_module'] = request()->module();
    $Param['log_controller'] = request()->controller();
    $Param['log_action'] = request()->action();
    $Param['log_msgs'] = $Message;
    $Param['log_state'] = $State;
    $Param['log_tips'] = $Tips;
    $Param['log_ip'] = request()->ip();
    $Param['log_create'] = time();

    $Logs = Db::name('SystemLog')->insert($Param);
}

/**
 * 密码加密方法
 * @author  黄明杰 vx:HMJ125855
 * @version 20190101
 * @param  	String 		$Pass     	成员密码
 * @return 	String
 */
function md5MemberPass($Pass){
	$String = md5(md5($Pass).config('md5_key'));

    return $String;
}

/**
 * 令牌加密方法
 * @author  黄明杰 vx:HMJ125855
 * @version 20190101
 * @param   String      $Time       登录时间
 * @param   String      $Rand       随机数字
 * @return  String
 */
function md5MemberToken($Time, $Rand){
    $String = md5(md5($Rand).$Time.config('md5_key'));

    return $String;
}

/**
 * 控制获取方法
 * @author  黄明杰 vx:HMJ125855
 * @version 20190101
 * @param   String 		$Dir       	文件目录
 * @return  Array
 */
function getControllers($Dir){
    $Lists = glob($Dir . '*.php');

    $Array = [];

    foreach($Lists as $v){
        $Data = basename($v, '.php');

        //过滤Base控制器
        if($Data != 'Base'){
            $Array[] = basename($v, '.php');
        }
    }

    return $Array;
}

/**
 * 方法获取方法
 * @author  黄明杰 vx:HMJ125855
 * @version 20190101
 * @param   String 		$Name      	控制器名
 * @param   String      $Base      	过滤控制
 * @return  Array
 */
function getActions($Name, $Base = '\app\madmin\controller\Base'){
    $MethodName = get_class_methods(new $Name());
    $MethodBase = get_class_methods(new $Base());
    $Action = array_diff($MethodName, $MethodBase);
    
    $Array = [];
    foreach($Action as $v){
        //过滤index方法
        if($v != 'index'){
            $Array[] = $v;
        }
    }

    return $Array;
}

/**
 * 对象转换方法
 * @author  黄明杰 vx:HMJ125855
 * @version 20190101
 * @param   Object 		$Obj 		控制器名
 * @return  Array
 */
function ObjectToArray($Obj){
    $Array = json_encode($Obj);
    $Array = json_decode($Array, true);

    return $Array;
}